<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <!-- 
        若：<input type="text"/> 则v-model收集的是value的值，用户输入的就是value的值
        若：<input type="radio"/> 则v-model收集的是value的值，且要给标签配置value值 
            //因为radio已经不能输入内容了
        若：<input type="checkbox"/> 
           1.没有配置input的value属性，那么收集的就是checked [勾选 or 未勾选，布尔值]
           2.配置input的value属性：
               （1）v-model的初始值是非数组，那么收集的就是checked [勾选 or 未勾选，布尔值]
               （2）v-model的初始值是数组，那么收集的就是value组成的数组
        备注：
            v-model的三个修饰符：
                lazy：失去焦点再收集数据
                number：输入字符串转为有效的数字
                trim： 输入首位空格过滤

        以下是例子：

    -->
    <div id="root">
      <form @submit.prevent="demo">
        账号：<input type="text" v-model.trim="userInfo.account" />
        // 去除前后空格
        <br /><br />
        密码：<input type="password" v-model="userInfo.password" /> <br /><br />
        年龄：<input type="number" v-model.number="userInfo.age" />
        // type="number 和 v-model.number 同时使用
        <br /><br />
        性别： 男 <input type="radio" name="sex" v-model="userInfo.sex" value="male" /> 女 <input type="radio" name="sex" v-model="userInfo.sex" value="female" /> <br /><br />
        爱好： 抽烟 <input type="checkbox" v-model="userInfo.hobby" value="smoke" /> 喝酒 <input type="checkbox" v-model="userInfo.hobby" value="drink" /> 烫头
        <input type="checkbox" v-model="userInfo.hobby" value="hotHead" /> <br /><br />
        所属校区：
        <select v-model="userInfo.city">
          <option value="">请选择</option>
          <option value="beijing">北京</option>
          <option value="shanghai">上海</option>
          <option value="shenzhen">深圳</option>
        </select>
        <br /><br />
        其他信息：
        <textarea v-model.lazy="userInfo.other"></textarea>
        // 失去焦点的瞬间收集数据，避免实时收集
        <br /><br />
        <input type="checkbox" v-model="userInfo.agree" /> 阅读并接受
        <a href="#">《用户协议》</a>
        <br /><br />
        <button>提交</button>
      </form>
    </div>
    <script>
      const vm = new Vue({
        data: {
          userInfo: {
            account: "",
            password: "",
            age: "",
            sex: "female",
            hobby: [],
            city: "beijing",
            other: "",
            agree: "",
          },
        },
        methods: {
          demo() {
            console.log(JSON.stringify(this.userInfo));
          },
        },
      });
      vm.$mount("#root");
    </script>
  </body>
</html>
